﻿using System;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace VietTrips.WebUI.Models
{
    public class RegisterModel
    {
        [Required(ErrorMessage = "Xin hãy điền Tên đăng nhập vào để có thể đăng ký")]
        [StringLength(80, ErrorMessage = "{0} phải dài hơn {2} ký tự.", MinimumLength = 6)]
        [Display(Name = "Tên truy cập")]
        /*[Remote("DoesUserNameExist", "Account", HttpMethod = "POST", ErrorMessage = "Rất tiếc! Tên Đăng Nhập đã tồn tại, vui lòng chọn tên khác.")]*/
        public string UserName { get; set; }

        [Required(ErrorMessage = "Xin hãy điền Mật khẩu vào để có thể đăng ký")]
        [StringLength(80, ErrorMessage = "{0} phải dài hơn {2} ký tự.", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Mật khẩu")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Xác nhận lại mật khẩu")]
        [System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "Xác nhận mật khẩu không đúng.")]
        public string ConfirmPassword { get; set; }

        [Required(ErrorMessage = "Xin hãy điền Họ Tên bạn vào để có thể đăng ký")]
        [Display(Name = "Họ và Tên")]
        public String FullName { get; set; }

        [Display(Name = "Giới tính")]
        public bool Female { get; set; }

        [Required(ErrorMessage = "Xin hãy điền Email vào để có thể đăng ký")]
        [EmailAddress(ErrorMessage = "Địa chỉ Email không hợp lệ")]
        [Display(Name = "Địa Chỉ Email")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Xin hãy điền Số điện thoại bạn vào để có thể đăng ký")]
        [DataType(DataType.PhoneNumber, ErrorMessage = "Số điện thoại này không hợp lệ")]
        [Display(Name = "Số Điện Thoại")]
        [StringLength(20, ErrorMessage = "Số điện thoại này không hợp lệ")]
        public string Phone { get; set; }

        [Display(Name = "Địa Chỉ")]
        public string Address { get; set; }

        [Display(Name = "Tỉnh / Thành Phố")]
        public string City { get; set; }

        [Display(Name = "Quyền Hạn (Debug)")]
        public string Role { get; set; }

        [Required(ErrorMessage = "Vui lòng cung cấp cho chúng tôi ngày sinh của bạn.")]
        [DataType(DataType.Date)]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
        [Display(Name = "Ngày Sinh")]
        public DateTime DateOfBirth { get; set; }

        public DateTime CreatedDate { get; set; }
        public DateTime LastModified { get; set; }
    }
}